package cn.ryh.gat1400.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @Author: aiLin
 * @Date: 2020/10/9 11:45
 * @desc: 人脸对象
 */
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class Face {

    /**
     * 人脸标识
     */
    @JsonProperty("FaceID")
    private String faceId;

    /**
     * 信息分类,人工采集还是自动采集
     */
    @JsonProperty("InfoKind")
    private String infoKind;

    /**
     * 来源图像信息标识
     */
    @JsonProperty("SourceID")
    private String sourceId;

    /**
     * 设备编码，自动采集必选
     */
    @JsonProperty("DeviceID")
    private String deviceId;

    /**
     * 左上角 X 坐标,人脸区域，自动采集记录时为必选
     */
    @JsonProperty("LeftTopX")
    private String leftTopX;

    /**
     * 左上角 Y 坐标,人脸区域，自动采集记录时为必选
     */
    @JsonProperty("LeftTopY")
    private String leftTopY;

    /**
     * 右下角 X 坐标,人脸区域，自动采集记录时为必选
     */
    @JsonProperty("RightBtmX")
    private String rightBtmX;

    /**
     * 右下角 Y 坐标,人脸区域，自动采集记录时为必选
     */
    @JsonProperty("RightBtmY")
    private String rightBtmY;

    /**
     * 位置标记时间,人工采集时有效
     */
    @JsonProperty("LocationMarkTime")
    private String locationMarkTime;

    /**
     * 人脸出现时间,人工采集时有效
     */
    @JsonProperty("FaceAppearTime")
    private String faceAppearTime;

    /**
     * 人脸消失时间,人工采集时有效
     */
    @JsonProperty("FaceDisAppearTime")
    private String faceDisAppearTime;

    /**
     * 证件种类
     */
    @JsonProperty("IDType")
    private String idType;

    /**
     * 证件号码,有效证件号码
     */
    @JsonProperty("IDNumber")
    private String idNumber;

    /**
     * 姓名，人员的中文姓名全称
     */
    @JsonProperty("Name")
    private String name;

    /**
     * 曾用名，曾经在户籍管理部门正式登记注册、人事档案正式记载的姓氏名称
     */
    @JsonProperty("UsedName")
    private String usedName;

    /**
     * 绰号，使用姓名及曾用名之外的名称
     */
    @JsonProperty("Alias")
    private String alias;

    /**
     * 性别代码
     */
    @JsonProperty("GenderCode")
    private String genderCode;

    /**
     * 年龄上限,最大可能年龄
     */
    @JsonProperty("AgeUpLimit")
    private int ageUpLimit;

    /**
     * 年龄下限,最小可能年龄
     */
    @JsonProperty("AgeLowerLi")
    private int ageLowerLi;

    /**
     * 民族代码,中国各名族的罗马字母拼写法和代码
     */
    @JsonProperty("EthicCode")
    private String ethicCode;

    /**
     * 国籍代码,世界各国和地区名称代码
     */
    @JsonProperty("NationalityCode")
    private String nationalityCode;

    /**
     * 籍贯省市县代码
     */
    @JsonProperty("NativeCityCode")
    private String nativeCityCode;

    /**
     * 居住地 行政区划
     */
    @JsonProperty("ResidenceAdminDivisi")
    private String residenceAdminDivisi;

    /**
     * 汉语口音代码,汉语口音编码规则
     */
    @JsonProperty("ChineseAccentCode")
    private String chineseAccentCode;

    /**
     * 职业类别代码,职业分类与代码，不包含代码中“—”
     */
    @JsonProperty("JobCategory")
    private String jobCategory;

    /**
     * 同行人脸数,被标注人脸的同行人脸数
     */
    @JsonProperty("AccompanyNumber")
    private String accompanyNumber;

    /**
     * 肤色
     */
    @JsonProperty("SkinColor")
    private String skinColor;

    /**
     * 发型
     */
    @JsonProperty("HairStyle")
    private String hairStyle;

    /**
     * 发色
     */
    @JsonProperty("HairColor")
    private String hairColor;

    /**
     * 脸型
     */
    @JsonProperty("FaceStyle")
    private String faceStyle;

    /**
     * 脸部特征
     */
    @JsonProperty("FacialFeature")
    private String facialFeature;

    /**
     * 体貌特征
     */
    @JsonProperty("PhysicalFeature")
    private String physicalFeature;

    /**
     * 口罩颜色
     */
    @JsonProperty("RespiratorColor")
    private String respiratorColor;

    /**
     * 帽子款式
     */
    @JsonProperty("CapStyle")
    private String capStyle;

    /**
     * 帽子颜色
     */
    @JsonProperty("CapColor")
    private String capColor;

    /**
     * 眼镜款式
     */
    @JsonProperty("GlassStyle")
    private String glassStyle;

    /**
     * 眼镜颜色
     */
    @JsonProperty("GlassColor")
    private String glassColor;

    /**
     * 是否驾驶员 0：否；1：是；2：不确定
     */
    @JsonProperty("IsDriver")
    private String isDriver;

    /**
     * 是否涉外人员 0：否；1：是；2：不确定
     */
    @JsonProperty("IsForeigne")
    private int isForeigne;

    /**
     * 护照证件种类
     */
    @JsonProperty("PassportType")
    private int passportType;

    /**
     * 出入境人员类别代码
     */
    @JsonProperty("ImmigrantTypeCode")
    private String immigrantTypeCode;

    /**
     * 是否涉恐人员 0：否；1：是；2：不确定
     */
    @JsonProperty("IsSuspectedTerrorist")
    private int isSuspectedTerrorist;

    /**
     * 涉恐人员编号
     */
    @JsonProperty("SuspectedTerroristNumber")
    private String suspectedTerroristNumber;

    /**
     * 是否涉案人员 0：否；1：是；2：不确定
     */
    @JsonProperty("IsCriminalInvolved")
    private int isCriminalInvolved;

    /**
     * 涉案人员专长代码
     */
    @JsonProperty("CriminalInvolvedSpecilisationCode")
    private String criminalInvolvedSpecilisationCode;

    /**
     * 体表特殊标记
     */
    @JsonProperty("BodySpeciallMark")
    private String bodySpeciallMark;

    /**
     * 作案手段
     */
    @JsonProperty("CrimeMethod")
    private String crimeMethod;

    /**
     * 作案特点代码
     */
    @JsonProperty("CrimeCharacterCode")
    private String crimeCharacterCode;

    /**
     * 在逃人员编号
     */
    @JsonProperty("EscapedCriminalNumbe")
    private String escapedCriminalNumbe;

    /**
     * 是否在押人员 0：否；1：是；2：不确定，人工采集必填
     */
    @JsonProperty("IsDetainees")
    private int isDetainees;

    /**
     * 看守所编码
     */
    @JsonProperty("DetentionHouseCode")
    private String detentionHouseCode;

    /**
     * 在押人员身份
     */
    @JsonProperty("DetaineesIdentity")
    private String detaineesIdentity;

    /**
     * 在押人员特殊身份
     */
    @JsonProperty("DetaineesSpecialIdentity")
    private String detaineesSpecialIdentity;

    /**
     * 成员类型代码
     */
    @JsonProperty("MemberTypeCode")
    private String memberTypeCode;

    /**
     * 是否被害人 0：否；1：是；2：不确定
     */
    @JsonProperty("IsVictim")
    private int isVictim;

    /**
     * 被害人种类
     */
    @JsonProperty("VictimType")
    private String victimType;

    /**
     * 受伤害程度
     */
    @JsonProperty("InjuredDegree")
    private String injuredDegree;

    /**
     * 尸体状况代码
     */
    @JsonProperty("CorpseConditionCode")
    private String corpseConditionCode;

    /**
     * 是否可疑人 0：否；1：是；2：不确定
     */
    @JsonProperty("IsSuspiciousPerson")
    private int isSuspiciousPerson;

    /**
     * 姿态分布 1：平视；2：微仰；3：微俯；4：左微侧脸；5 左斜侧脸；6：左全侧脸；7：右微侧脸；8：右 斜侧脸；9：右全侧脸
     */
    @JsonProperty("Attitude")
    private int attitude;

    /**
     * 相似度 人脸相似度，[0，1]
     */
    @JsonProperty("Similaritydegree")
    private String similaritydegree;

    /**
     * 眉型 1：上扬眉；2：一字眉；3：八字眉；4：淡眉毛 5：浓眉毛；6：弯眉；7：细眉；8：短眉毛 9：特殊眉；  有多个特征时用英文半角分 号”;”分隔
     */
    @JsonProperty("EyebrowStyle")
    private String eyebrowStyle;

    /**
     * 鼻型 1：普通鼻；2：扁鼻子；3：尖鼻子；4：朝天鼻；5：鹰钩鼻；6：蒜头鼻；7：宽鼻子；8： 小鼻子；9：露孔鼻；10：特殊鼻； 有多个特 征时用英文半角分号”;”分隔
     */
    @JsonProperty("NoseStyle")
    private String noseStyle;

    /**
     * 胡型 1：一字胡；2：八字胡；3：淡胡子；4：络腮胡；5：山羊胡；6：花白胡；7：一点胡
     */
    @JsonProperty("MustacheStyle")
    private String mustacheStyle;

    /**
     * 1：常见嘴；2：厚嘴唇；3：薄嘴唇；4：厚嘴巴；5：上翘嘴；6：下撇嘴；7：凸嘴；8：凹 嘴；9：露齿嘴；10：小嘴； 有多个特征时用 英文半角分号”;”分隔
     */
    @JsonProperty("LipStyle")
    private String lipStyle;

    /**
     * 皱纹眼袋；1：抬头纹；2：左眼角纹；3：右眼角纹；4：眉间纹；5：左眼纹；6：右眼纹；7：眼袋；8 左笑纹；9：右笑纹；10：鼻间纹；11：左瘦纹 12：右瘦纹；  有多个特征时用英文半角分 号”;”分隔
     */
    @JsonProperty("WrinklePouch")
    private String wrinklePouch;

    /**
     * 痤疮色斑；1：痤疮（单）；2：痤疮（少）；3：痤疮（多）4：雀斑（稀）；5：雀斑（少）；6：雀斑（多）7：色斑； 有多个特征时用英文半角分号”;” 分隔
     */
    @JsonProperty("AcneStain")
    private String acneStain;

    /**
     * 黑痣胎记；1：痣（小）；2：痣（中）；3：痣（大）；4：黑痣（小）；5：黑痣（中）；6：黑痣（大）；7：胎记；有多个特征时用英文半角分号”;”分隔
     */
    @JsonProperty("FreckleBirthmark")
    private String freckleBirthmark;

    /**
     * 疤痕酒窝；1：疤痕；2：酒窝左；3：酒窝右； 有多个特征时用英文半角分号”;”分隔
     */
    @JsonProperty("ScarDimple")
    private String scarDimple;

    /**
     * 其他特征；1：酒渣鼻（小）；2：酒渣鼻（大）；3：酒渣鼻（重）  4：招风耳左；5：招风耳右；6：大耳
     */
    @JsonProperty("OtherFeature")
    private String otherFeature;

    /**
     * 朵左；7：大耳朵右；8：粗糙皮肤；9：白癜风小；10：白癜风中；11：白癜风大；  有多个 特征时用英文半角分号”;”分隔
     */
    @JsonProperty("ed")
    private String ed;

    /**
     * 图像列表,可以包含 0 个或者多个子图像对象
     */
    @JsonProperty("SubImageList")
    private SubImageList subImageInfoList;
}
